package com.spring.redis.operation.service.base;

import java.util.Set;

/**
 * redis Operation set base interface
 *
 * @author zhouyu
 */
public interface SetRedisBaseService {

    /**
     * 将数据放入set缓存
     *
     * @param key    键
     * @param values 值
     * @return java.lang.Long 成功个数
     */
    Long sSet(String key, Object... values);

    /**
     * 将数据放入set缓存,并设置过期时间
     *
     * @param key    key
     * @param time   time
     * @param values values
     * @return java.lang.Long 成功个数
     */
    Long sSetExpire(String key, Long time, Object... values);

    /**
     * 根据key获取Set中的所有值
     *
     * @param key key
     * @return java.util.Set<Object>
     */
    Set<Object> sGetAll(String key);

    /**
     * 根据key,value从一个set中查询,是否存在
     *
     * @param key   键
     * @param value 值
     * @return java.lang.Boolean 是否存在
     */
    Boolean sHasKey(String key, Object value);

    /**
     * 获取set缓存的长度
     *
     * @param key 键
     * @return java.lang.Long set长度
     */
    Long sSetSize(String key);

    /**
     * 移除值为value的
     *
     * @param key    键
     * @param values 值 可以是多个
     * @return java.lang.Long 移除的个数
     */
    Long setRemove(String key, Object... values);
}
